字节跳动 抖音后端21届校招

美本，一个多月前更改计划开始准备找工作，目前三面都通过了，hr说在准备offer 

-------------------------------------------------------------------------------
一面 
1. 自我介绍 
2. 讲了一下线程库（mutex, conditional variable, thread）的C++实现 
3. 设计题：设计线程池 
4. 设计题：有一些缓存和缓存对应的过期时间，什么样的数据结构可以完成对过期缓存的清理 
5. TCP四次挥手（说了所有的状态，包发送的内容，flag的设置，为什么timewait的两个原因） 
6. 单线程处理多个请求的方式（提示：IO相关，回答IO的多路复用） 
7. select，poll，epoll的区别 
8. 做题，实现三次根号运算，二分搜索 

---------------------------------------------------------------------------------
二面 
1. 自我介绍 
2. 讲了一下虚拟内存管理系统（C++项目） 
3. 用过redis吗（没有，但是知道一些理论） 
4. 平时用过的数据库（Oracle SQL PLUS） 
5. 隔离层级是？（不知道，随便说了一个可重复读） 
6. 说一下各个隔离层级的区别（未提交读，提交读，可重复读，可串行化，并且说了每个层级的底层实现方法，参照DDIA） 
7. 做题，Leetcode 124 

--------------------------------------------------------------------------------
三面 
1. 自我介绍 
2. 转专业和转学的过程，过程中面临的问题和解决方法 
3. redis的应用场景 
4. 设计题：如何储存用户名和密码（最后面试官说用MD5加密，我表示没学过） 
5. C++中的volatile 
6. redis中的数据结构有哪些 
7. 做题，所有从根结点出发到叶子结点路径和=target的路径，并且打印出来 
8. 好像对我的经历很感兴趣，问了很多为什么转学，刷了多少题，自己的优缺点，小组项目中的挑战分工和如何解决问题 

整体过程感觉还是很好的，感谢hr很负责，基本上前两面结束后10分钟就让我知道结果，三面半个小时就通知我结果了。
